#ifndef TILE_H
#define TILE_H

class Coord;
#include "sdl.h" 
#include <vector> 
#include "Drawable.h"
#include "Draw.h"  
class Tile{


public:
	bool Collides(int layer);//returns true if the specified layer collides on this tile
	
	void applyGraphics( );
	void removeDrawable(int id);
	void addDrawable(Drawable* thing); 
	~Tile(void);
	Tile();
	void init();
	static int nu;
	double getLightEmitted() const; 
void setAlpha(int alpha);

Drawable* getEmitter() const;
	SDL_Surface * tileImage; 
	int id; 
	std::vector<Drawable> drawables;

private:
	int alpha;
};

#endif

/*this class defines a tile. In short, a tile is the thing being managed by the tileManager.
It is any "Square" on the "board". the drawn size of a tile is set by the constant TILE_SIZE (32)
in tileManager. This class handles what a tile contains.
A tile can contain up to:
one obstacle
OR
n items + one actor + n modifiers (lava, sacred ground, etc.) + ONE activatable (lever)
in the event that it contains a modifier such as lava or acid (which dissolve items/actors), we
should use a flag to indicate that we will destroy every subsequent item in the collection.

we always check the obstacle collection first. if it isn't empty, nothing else can occupy this space.




*/
